home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
qbbs
/
qexe_203.zip
/
STRUCT.201
< prev
next >
Wrap
Text File
|
1988-05-01
|
12KB
|
322 lines
QuickBBS Version 2.01 Structures Document
=========================================
This file contains all of the data file structures used by the QuickBBS
Version 2 series. These are provided as a reference for utility writers
to develop and test their programs for use with QuickBBS.
All "String[]" type variables are one byte bigger than specified, byte 0
(the first byte) contains the length of the string. The remaining of
the string should be ignored, as it is not padded with nulls.
Turbo Pascal Variable Type C Language Var Type Length
===============================================================
Byte | Char | 1 byte
Char | Char | 1 byte
Integer | Int | 2 bytes
Word | Unsigned Int | 2 bytes
LongInt | Long | 4 bytes
Real | [ None ] | 6 bytes
===============================================================
==========================================================================
Type
FlagType = Array[1..4] of Byte;
UserRecord = Record { Used in the USERS.BBS File }
Name: String[35];
City: String[25];
Pwd: String[15];
DataPhone,
HomePhone: String[12];
LastTime: String[5];
LastDate: String[8];
Attrib: Byte;
Flags: FlagType;
Credit,
Pending,
TimesPosted,
HighMsgRead,
SecLvl,
Times,
Ups,
Downs,
UpK,
DownK,
TodayK,
Elapsed,
Len: Integer;
ExtraSpace: Array[1..8] of Byte;
End;
(* Attrib:
Bit 0: Deleted
Bit 1: Screen Clear Codes
Bit 2: More Prompt
Bit 3: ANSI
Bit 4: No-Kill
Bit 5: Ignore Download Hours
Bit 6: ANSI Full Screen Editor
Bit 7: [ Reserved ]
*)
{ Nodelist Records *************************************************** }
NodeIdxRecord = Record { Used for QNL_IDX.BBS file }
Zone,
Net,
Node: Integer;
NodeType: Byte;
End;
NodelistRecord = Record { Used in QNL_DAT.BBS file }
NodeType: Byte;
Zone,
Net,
Node: Integer;
Name: String[20];
City: String[40];
Phone: String[40];
Password: String[8];
Flags: Integer;
BaudRate: Integer;
Cost: Integer;
End;
(* NodeType variable codes:
0 = Normal Node
1 = Zone Coordinator
2 = Region Coordinator
3 = Net Coordinator
4 = Hub Coordinator
*)
{ Message Records ******************************************************}
InfoRecord = Record { Used in the MSGINFO.BBS file }
LowMsg: Integer; { Lowest Message in File }
HighMsg: Integer; { Highest Message in File }
TotalActive: Integer; { Total Active Messages }
ActiveMsgs: Array[1..200] of Integer;
End;
IdxRecord = Record { Used in the MSGIDX.BBS file }
MsgNum: Integer;
Board: Byte;
End;
HdrRecord = Record { Used in the MSGHDR.BBS file }
MsgNum,
ReplyTo,
SeeAlsoNum,
TRead: Integer;
StartRec: Word;
NumRecs,
DestNet,
DestNode,
OrigNet,
OrigNode: Integer;
DestZone,
OrigZone: Byte;
Cost: Integer;
MsgAttr,
NetAttr,
Board: Byte;
PostTime: String[5];
PostDate: String[8];
WhoTo,
WhoFrom: String[35];
Subj: String[72];
End;
(* Msg Attributes:
Bit 0: Deleted
Bit 1: Unmoved Outgoing Net Message
Bit 2: Is a Net Mail Message
Bit 3: Private
Bit 4: Received
Bit 5: Unmoved Outgoing Echo Message
Bit 6: Local Bit
Bit 7: [ Reserved ]
Net Attributes:
Bit 0: Kill Message after it's been sent
Bit 1: Sent OK
Bit 2: File(s) Attached
Bit 3: Crash Priority
Bit 4: Request Receipt
Bit 5: Audit Request
Bit 6: Is a Return Receipt
Bit 7: [ Reserved ]
Each record in the MSGTOIDX.BBS file is of type String[35], each entry
is simply the name of the corresponding message in MSGHDR.BBS is
addressed to.
Each record in the MSGTXT.BBS file is of type String[255], each entry
is used to store blocks of message text. The variable "StartRec" in
the MSGHDR.BBS file contains the starting record position for the
text, the variable "NumRecs" indicates how many consecutive blocks
of text there are in the MSGTXT.BBS file.
*)
{ Other Stuff *********************************************************** }
SysInfoRecord = Record { Used in the SYSINFO.BBS file }
CallCount: LongInt;
LastCaller: String[35];
ExtraSpace: Array[1..128] of Byte;
End;
TimeLogRecord = Record { Used in the TIMELOG.BBS file }
StartDate: String[8];
BusyPerHour: Array[0..23] of Integer;
BusyPerDay: Array[0..6] of Integer;
End;
MenuRecord = Record { Used for all *.MNU files }
Typ: Byte;
Sec: Integer;
Flags: FlagType;
Str: String[75];
Key: Char;
Data: String[80];
Fg,
Bg: Byte;
End;
{ Configuration Information ********************************************** }
EventRecord = Record { Part of Configuration Record }
Status: Byte; { 0=Deleted 1=Enabled 2=Disabled }
RunTime: String[5];
ErrorLevel: Byte;
Days: Byte;
Forced: Boolean;
LastTimeRun: String[8];
End;
BoardRecord = Record { Part of Configuration Record }
Name: String[16];
Typ: Byte; { 0=Standard 1=Net 2=EMail 3=Echo }
Kinds: Byte; { 0=Both 1=Pvt 2=Pub 3=Read-Only }
Combined: Boolean;
Aliases: Boolean;
ReadSecLvl: Integer;
ReadFlags: FlagType;
WriteSecLvl: Integer;
WriteFlags: FlagType;
SysopSecLvl: Integer;
SysopFlags: FlagType;
End;
ConfigRecord = Record { Used for the CONFIG.BBS file }
(* Modem Parameters *)
CommPort: Integer;
InitBaud,
InitTimes,
AnswerWait: Integer;
ModemInitStr,
ModemBusyStr: String[70];
ModemInitResp,
ModemBusyResp,
Resp300,
Resp1200,
Resp2400: String[40];
(* System Paths *)
MenuPath,
TextPath,
NetPath: String[66];
(* Restriction Parameters *)
MinBaud,
GraphicsBaud,
XferBaud: Integer;
LowBaudStart,
LowBaudEnd,
DownloadStart,
DownloadEnd,
PagingStart,
PagingEnd: String[5];
(* Matrix Information *)
MatrixZone,
MatrixNet,
MatrixNode: Integer;
AkaNet,
AkaNode: Array[1..5] of Integer;
NetMailBoard: Integer;
(* Default Information for New Users *)
DefaultSec: Integer;
DefaultCredit: Integer;
DefaultFlags: FlagType;
(* Sysop Security Levels *)
EditorCmdStr: String[70];
OriginLine: String[60];
SysopName: String[35];
AutoLogonChar,
FastLogon,
ScreenBlanking,
UseLastRead,
MonoMode,
DirectWrite,
SnowCheck,
NetEchoExit,
OneWordNames,
CheckMail,
AskHomePhone,
AskDataPhone,
GraphicsAvail: Boolean;
InactiveTimeOut: Integer;
LogonTime: Integer;
DefFgColor: Integer;
DefBgColor: Integer;
PasswordTries: Integer;
MaxPageTimes: Integer;
PageBellLen: Integer;
UseZoneGates: Boolean;
ExtraSpace: Array[1..511] of Byte;
EventRec: Array[1..30] of EventRecord;
BoardRec: Array[1..200] of BoardRecord;
End;
ExitRecord = Record { Used for the EXITINFO.BBS file }
BaudRate: Integer;
SysInfo: SysInfoRecord;
TimeLogInfo: TimeLogRecord;
UserInfo: UserRecord;
EventInfo: EventRecord;
NetMailEntered: Boolean;
EchoMailEntered: Boolean;
LoginTime: String[5];
LoginDate: String[8];
TmLimit: Integer;
LoginSec: LongInt;
Credit: LongInt;
UserRecNum: Integer;
ReadThru: Integer;
PageTimes: Integer;
DownLimit: Integer;
End;